1. Field of the Invention
The present invention relates to communication networks. More specifically, the present invention relates to an apparatus and a method for high-throughput asynchronous communication over high-latency communication channels.
2. Related Art
Dramatic increases in computational speed in recent years have largely been facilitated by improvements in semiconductor integration densities, which presently allow hundreds of millions of transistors to be integrated into a single semiconductor chip. This makes it possible to incorporate a large amount of computational circuitry onto a semiconductor chip. Moreover, the small circuit dimensions made possible by improved integration densities have enabled this computational circuitry to operate at greatly increased speeds. While computational circuitry within semiconductor chips continues to grow increasingly faster, the delay involved in communicating data between semiconductor chips has not decreased significantly. Consequently, communication delay is beginning to create a significant bottleneck to computer system performance.
For example, FIG. 1 illustrates a typical communication system that includes sender 100, receiver 102, and communication channel 104, wherein sender 100 comprises sending control module 106 and sending data latch 108, and wherein receiver 102 comprises receiving control module 110 and receiving data latch 112. The control modules 106 and 110 have inputs marked with triangles, and outputs, which have no triangles. Sending control module 106 is coupled to receiving control module 110 through request line 114 and acknowledge line 116. Sending data latch 108 is coupled to receiving data latch 112 through data path 118. Request line 114, acknowledge line 116, and data path 118 are collectively referred to as “communication channels” 104.
During operation, when data is available in sending data latch 108 and data path 118 is free, sending control module 106 sends a request signal on request line 114 and simultaneously causes sending data latch 108 to send a data item onto data path 118. After a transit time, the request signal and the data item arrive at receiving control module 110 and receiving data latch 112, respectively.
In response to the request signal, if the downstream channel is available, receiving control module 110 causes the data to be latched into receiving data latch 112 and simultaneously sends an acknowledge signal on acknowledge line 116. After an additional transit time, the acknowledge signal arrives at sending control module 106, which causes sending control module 106 to send a subsequent data item from sending data latch 108 onto data path 118. Note that above steps can be repeated.
Unfortunately, the above-described communication scheme has a serious drawback. The data rate of the communication channels is restricted by a request-acknowledge cycle time required to send a request signal and to receive a corresponding acknowledge signal for each data item. Note that while the acknowledge signal is in-flight, data path 118 is idle. Thus, data path 118 is busy at most half of the time, and is hence significantly underutilized.
In order to alleviate this problem, a previous invention described alternately using two sets of control paths to asynchronously control transmission of consecutive data items between the sender and the receiver, thereby allowing an improved data rate up to twice as high as the implementation illustrated in FIG. 1. However, this technique does not provide a solution for a communication system that requires an even higher data rate.
Hence, what is needed is an apparatus and a method for high-throughput asynchronous communication between a sender and a receiver without the above-described limitation.